<?php
class Config
{
	private static $_config;
	
	public static function init($config=NULL)
	{
		self::$_config = $config;
	}
	
	/**
	 * 根据键获取配置文件值
	 * @param string $key 键,多级键之间用.分割
	 * @param string $config 可选,不填写该选项则从config.php配置文件读取;该参数可以是文件名,比如在config文件夹下的db.php配置文件只需要db即可表示,也可以使用完整路径
	 * @param string $default 可选,无法在配置文件中找到时返回该值
	 * @return string 返回配置文件对应的值，如果无法找到则返回false
	 */
	public static function get($key,$default="ddddaaaagggggffffdd",$config=null)
	{
		if(!$config)
		{
			$config = self::$_config;
		}
		else
		{
			if(is_file($config))
			{
				$config = require $config;
			}
			else
			{
				$config = __DIR__."/../../".self::$_config["configDir"]."/".$config.".php";
				if(is_file($config))
				{
					$config = require $config;
				}
				else
				{
					CError::handler(E_ERROR,"配置文件".$config."无法找到!",__FILE__,__LINE__);
				}
			}
		}
		
		$keyList = explode(".",$key);
		
		$keyChild = $config;
		
		foreach ($keyList as $item)
		{
			if(isset($keyChild[$item]))
			{
				$keyChild = $keyChild[$item];
			}
			else
			{
				if($default=="ddddaaaagggggffffdd")
				{
					CError::handler(E_WARNING,"在配置文件中无法找到键[".$item."]",__FILE__,__LINE__,array());
					return false;
				}
				else
				{
					return $default;
				}
			}
		}

		return $keyChild;
	}
}

?>